package mastermind.logic;

import mastermind.dataholder.Row;
import mastermind.gui.contents.AssistantUI;

/**
 * Der Assistent startet die Berechnung der Tipps und bewertet Eingaben.<br>
 * <br>
 * Wenn der Computer raten soll, gibt dieser sich einfach selbst die
 * Vorschl&auml;ge
 */
public class Assistant
{
	/**
	 * Alle Funktionen in der Klasse sind statisch<br>
	 * Es ist nicht n&ouml;tig ein Objekt davon zu erstellen
	 */
	private Assistant()
	{}

	/**
	 * Berechnet Tipps und zeigt diese an.<br/>
	 * Da die Tipps in einem extra Thread berechnet werden erscheinen die Tipps
	 * nach und nach.
	 */
	public static void giveTips()
	{
		Solver.run();
	}

	/**
	 * Bewertet eine Row und l&auml;st den Assistenten f&uuml;r Grafische
	 * Aufgaben die Bewertung anzeigen
	 * 
	 * @param row
	 *            Die zu bewertende Row
	 */
	public static void rateRow(Row row)
	{
		AssistantUI.rateRow(SolverThread.isPossible(row.getColors()));
	}

}
